Sensor alignment calibration

ABSTRACT

A calibration scheme measures roll, pitch, and yaw and other speeds and accelerations during a series of vehicle maneuvers. Based on the measurements, the calibration scheme calculates inertial sensor misalignments. The calibration scheme also calculates offsets of the inertial sensors and GPS antennas from a vehicle control point. The calibration scheme can also estimate other calibration parameters, such as minimum vehicle radii and nearest orthogonal orientation. Automated sensor calibration reduces the amount of operator input used when calibrating sensor parameters. Automatic sensor calibration also allows the operator to install an electronic control unit (ECU) in any convenient orientation (roll, pitch and yaw), removing the need for the ECU to be installed in a restrictive orthogonal configuration. The calibration scheme may remove dependencies on a heading filter and steering interfaces by calculating sensor parameters based on raw sensor measurements taken during the vehicle maneuvers.

The present application claims priority to U.S. Provisional PatentApplication Ser. No. 62/257,395 filed on Nov. 19, 2015, entitled: SENSORALIGNMENT CALIBRATION which is incorporated by reference in itsentirety.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the United States Patent andTrademark Office patent file or records, but otherwise reserves allcopyright rights whatsoever.

TECHNICAL FIELD

One or more implementations relate generally to sensor calibration.

BACKGROUND

Accurate and robust automated steering applications rely on accuratesensor positioning and installation. Measured vehicle position andheading is based on knowledge of the relative alignment and offsetdistance of the vehicle sensors from a vehicle control point. If therelative sensor distances from the control point are incorrectlymeasured, vehicle positions and headings based on those relative sensordistances are also incorrect.

Sensor installation parameters, such as distances and angles relative tothe vehicle control point, are currently measured by the vehicleoperator. Subject to the amount of care and expertise of the vehicleoperator, manually measured installation parameters may include parallaxerrors and other types of errors that result in poor steeringperformance and possible vehicle instability.

BRIEF DESCRIPTION OF THE DRAWINGS

The included drawings are for illustrative purposes and serve to provideexamples of possible structures and operations for the disclosedinventive systems, apparatus, methods and computer-readable storagemedia. These drawings in no way limit any changes in form and detailthat may be made by one skilled in the art without departing from thespirit and scope of the disclosed implementations.

FIG. 1 shows example orthogonal electronic control unit (ECU)installations.

FIG. 2 shows example non-orthogonal ECU installations.

FIGS. 3A and 3B show vehicle maneuvers performed while reading vehiclesensor data.

FIG. 4 shows an example process for calculating sensor pitchmisalignment.

FIG. 5 shows an example process for calculating sensor rollmisalignment.

FIG. 6 shows an example process for calculating inertial sensor offsetsand yaw misalignment.

FIG. 7 shows an example process for calculating GPS antenna offsets.

FIG. 8 shows an example process for automatically calibrating vehiclesensors.

FIG. 9 shows an example guidance system for calibrating vehicle sensors.

FIG. 10 shows the guidance system controlling an auto-steering system.

DETAILED DESCRIPTION

A calibration scheme measures roll, pitch, and yaw rates and other speedand accelerations during a series of vehicle maneuvers. Based on themeasurements, the calibration scheme calculates inertial sensormisalignments. The calibration scheme also calculates offsets ofinertial sensors and GPS antennas from a vehicle control point. Thecalibration scheme can also estimate other calibration parameters, suchas minimum vehicle radii and nearest orthogonal orientation.

Automated sensor calibration reduces the amount of operator input usedwhen defining sensor installation parameters. Automated sensorcalibration also allows the operator to install an electronic controlunit (ECU) in any convenient orientation (roll, pitch and yaw), removingthe need for the ECU to be installed in a restrictive orthogonalconfiguration. Automated sensor calibration may remove dependencies on aheading filter and steering interfaces by calculating sensor parametersbased on raw sensor measurements taken during the vehicle maneuvers.

FIG. 1 illustrates two typical orthogonal ECU installations. In oneexample, ECU 120 may contain one or more inertial measurement units(IMU) 150. The IMUs 150 may include a collection of accelerometers andgyroscopes alternatively referred to as inertials used for measuringspeed, acceleration, yaw, pitch, roll, or any other vehicle heading orposition. ECU 120 may include other electronics and processors forrecording the inertial measurements.

A plate 127 is attached to a vehicle 100 and a set of hinges 124, 125,and 126 attach plate 127 to a plate 123 attached to ECU 120. Hinges 124,125, and 126 may rotate ECU 120 into a variety of different alignmentsrelative to vehicle 100. In alignment 1, ECU 120 is aligned and levelwith attached vehicle 100. In alignment 2, ECU 120 is rotated in pitchby 90° and appears vertically aligned with vehicle 100. The orthogonalinstallations in FIG. 1 are indicative of current installationprocedures, where ECU 120 has to be aligned parallel or perpendicularlywith the vehicle axis.

A GPS antenna may be installed on the chassis of vehicle 100 and offsetfrom ECU 120. Preferably, IMU 150 within ECU 120 is located as close aspossible to a pivot point of vehicle 100. The pivot point isalternatively referred to as a vehicle control point or center ofgravity. However, due to space limitations on vehicle 100, ECU 120 maybe offset and/or misaligned with the control point andlongitudinal/lateral axes of vehicle 100 that extend through the controlpoint.

FIG. 2 illustrates non-orthogonal installations, where no axes of ECU120 are aligned with axes of vehicle 100. These cases represent moregeneral ECU installations, where there is no restriction on thealignment of ECU 120. Sensor alignment calibration as described belowallows an operator to attach ECU 120 in any orientation with respect tovehicle 100 as shown in FIGS. 1 and 2 and automatically calculate themisalignments and offsets relative to the vehicle axes.

References below to a local frame may refer to a frame of reference onthe ground looking north and is also referred to as a fixed frame.References to a body frame may refer to a frame of vehicle 100 as itmoves and an x-axis may typically be a heading of the body frame. An ECUframe may refer to the vehicle body but relative to ECU box 120.

Calibration

FIGS. 3A and 3B show example vehicle maneuvers performed duringautomated sensor alignment calibration. In one example, an operator maymanually drive vehicle 100 through a series of steps 1-6 based oninstructions provided via user interface prompts displayed from a screenincluded on a navigation system 110.

During step 1, the operator may turn on vehicle 100 and navigationsystem 110 but keep vehicle 100 in a stationary position. Navigationsystem 110 takes first sensor readings during step 1, such as vehicleacceleration readings from accelerometers in ECU 120 in FIGS. 1 and 2.During step 2, the operator may drive vehicle 100 from the currentstationary location around in a circular pattern and then return to theinitial location but in a 180 degree opposite direction. Navigationsystem 110 then takes additional sensor readings during step 2 and step3 while vehicle 100 is in the stationary opposite 180 degree position.

Referring now to FIG. 3B, during step 4, navigation system 110 takessensor readings while the operator drives vehicle 100 forward in astraight line at a constant speed. For example, navigation system 110may take speed and yaw baseline readings.

During step 5, navigation system 110 takes sensor readings while theoperator drives vehicle 100 in a full lock left turn while maintaining aconstant speed. During step 6, navigation system 110 takes sensorreadings while the operator drives vehicle 100 in a full lock right turnwhile maintaining a constant speed. A full lock turn refers to thevehicle operator turning the vehicle steering wheel as far as possibleto the left or to the right. Sensor readings taken by navigation system110 during steps 5 and 6, may include global positioning system (GPS)speed readings, gyroscope yaw rate readings, and accelerometer readings.

ECU Installation Misalignment

One objective of step 1 is to obtain the roll ϕ₁ and pitch θ₁ measuredby IMU 150 (FIG. 1). Step 2 then obtains the roll ϕ₂ and pitch θ₂measured by IMU 150 following the repositioning of vehicle 100 at the180 degree heading change. Steps 1 and 2 are part of an initialcalibration used to determine the roll and pitch installationmisalignment of ECU 120 with the reference axis of vehicle 100.Performing these measurements in opposite vehicle directions removesterrain effects that may contribute to false roll and pitch ECUmeasurements.

FIG. 4 illustrates the principles behind steps 1 and 2 in more detail.In step 1, vehicle 100 is stationary, facing up on a sloped surface,with a terrain pitch of θ_(t). ECU 120 was installed with aninstallation misalignment of θ_(m) relative to a body axis 122(X_(vehicle), Y_(vehicle)) of vehicle 100. The roll and pitch valuescalculated in steps 1 and 2 are derived by comparing accelerationcomponents measured by the IMU accelerometers within ECU 120 relative toa gravity vector. When sensor measurements are taken during step 1, themeasured pitch may be a combination of both the terrain and IMUmisalignment pitch angles, where:θ₁=θ_(t)+θ_(m)  (2.1)

In step 2, vehicle 100 has changed direction relative to the terrain,facing down the slope, but misalignment angle θ_(m) of ECU 120 relativeto body axis 122 remains the same. Therefore, the measured pitch angleduring step 2 is:θ₂=−θ_(t)+θ_(m)  (2.2)

With this information, navigation system 110 may calculate the ECU pitchmisalignment θ_(m) by averaging the pitch estimates obtained in steps 1and 2, where:

$\begin{matrix}{\theta_{m} = \frac{\theta_{1} + \theta_{2}}{2}} & (2.3)\end{matrix}$

Operation 2.3 eliminates the terrain pitch effects, so only the pitchinstallation misalignment angle θ_(m) for ECU 120 remains.

FIG. 5 shows how navigation system 110 calculates the roll misalignmentangle ϕ_(m). By measuring vehicle roll in opposite directions, theterrain effects on roll can be eliminated, where:

$\begin{matrix}{\phi_{1} = {\phi_{t} + \phi_{m}}} & (2.4) \\{\phi_{2} = {{- \phi_{t}} + \phi_{m}}} & (2.5) \\{\phi_{m} = \frac{\phi_{1} + \phi_{2}}{2}} & (2.6)\end{matrix}$

With the roll and pitch misalignments calculated, navigation system 110performs an intermediate frame transformation to align the measurementsfrom IMU 150 with a local-level frame. As mentioned above, the localframe is the frame of reference on the ground or fixed frame often witha reference to north. An intermediate frame transformation can beexpressed as:C _(b) ^(L) =L _(y)(−θ_(m))L _(r)(−ϕ_(m))  (2.7)

where C_(b) ^(L) describes the transformation from the sensor (body)frame to the local-level frame. The matrices L_(x) and L_(y) refer torotations in the x and y axes respectively.

The frame transformation in process 2.7 may align the IMU sensorreadings with expected vehicle axes. For example, if IMU 150 pitches upand is rolled to the right, process 2.7 may unroll and depitch themeasurements to align with vehicle axes that extend through the vehiclecontrol point and effectively algorithmically straightens out IMU 150.

Navigation system 110 uses step 3 in FIG. 3A to estimate yaw rate bias{dot over (ψ)}_(b), which is used to de-bias yaw rate measurementsduring subsequent vehicle maneuvers. A yaw rate de-bias is thenperformed so subsequent calculations are not effected by drifting yawrate measurements that can be common to inertial sensors. Navigationsystem 110 may achieve greater steering accuracy by estimating andeliminating yaw rate bias from navigation measurements.

Navigation system 110 uses step 4 to determine the calibration speed V₀,maintained throughout the calibration process. In one example,calibration speed V₀ is selected to be as high as possible without thevehicle wheels slipping on the terrain. The same calibration speed maybe used throughout the other vehicle maneuvers in steps 5 and 6.

FIG. 6 illustrates how ECU misalignment estimation is performed in steps5 and 6 of FIG. 3B. Navigation system 110 uses step 5 to determine theIMU velocity V_(IMU,L) and yaw rate {dot over (ψ)}_(L) for a left-handvehicle turn. This is performed by steering vehicle 100 to full-lockleft (the maximum amount vehicle 100 can turn left) and recording themeasured data from ECU 120.

Similarly, navigation system 110 uses step 6 in FIG. 3B to determine theIMU velocity V_(IMU,R) and yaw rate {dot over (ψ)}_(R) for theright-hand turn at full-lock right. Left and right hand turningmaneuvers are used since the installation location of ECU 120 can beoff-center and turning in both left and right directions allowsnavigation system 110 to compensate for the effects of an off-centerinstallation of ECU 120. At the completion of step 6, navigation system110 has collected all sensor data needed for calculating installationmisalignment and offset values for ECU 120 and a GPS antenna.

In one example, the velocities from IMU 150 within ECU 120 cannot bemeasured directly, and are estimated using corrected accelerations thathave been transformed into the local-level frame. Again, IMU 150 mayinclude any combination of gyroscopes and accelerometers that measureyaw, pitch and roll rates, speed, acceleration, etc. Navigation system110 uses the corrected accelerations to calculate the IMU velocities asfollows:

$\begin{matrix}{V_{{IMU},L} = \frac{\sqrt{a_{\hat{x},L^{2}} + a_{\hat{y},L^{2}}}}{{\overset{.}{\psi}}_{L} - {\overset{.}{\psi}}_{b}}} & (2.8) \\{V_{{IMU},R} = \frac{\sqrt{a_{\hat{x},R^{2}} + a_{\hat{y},R^{2}}}}{{\overset{.}{\psi}}_{R} - {\overset{.}{\psi}}_{b}}} & (2.9)\end{matrix}$where a_({circumflex over (x)},L), a_(ŷ,L) anda_({circumflex over (x)},R), a_({circumflex over (x)},R) are thecorrected accelerations measured in the x and y axis accelerometers foreach turn direction obtained during steps 5 and 6.

With these measured values, navigation system 110 determines the forwardIMU offset I_(x) and lateral IMU offset I_(y) as follows:

$\begin{matrix}{l_{y} = \frac{n_{R} - n_{L} - ( \frac{m_{R} - m_{L}}{n_{R} + n_{L}} )}{2}} & (2.10) \\{{l_{x} = \sqrt{m_{R} - ( {n_{R} - l_{y}} )^{2}}}{where}} & (2.11) \\{m_{R} = ( \frac{V_{{IMU},R}}{{\overset{.}{\psi}}_{R} - {\overset{.}{\psi}}_{b}} )^{2}} & (2.12) \\{m_{L} = ( \frac{V_{{IMU},L}}{{\overset{.}{\psi}}_{L} - {\overset{.}{\psi}}_{b}} )^{2}} & \begin{matrix}(2.13) \\(2.14)\end{matrix} \\{\;{and}} & \; \\{n_{R} = {\frac{V_{0}}{{\overset{.}{\psi}}_{R} - {\overset{.}{\psi}}_{b}}}} & (2.15) \\{n_{L} = {\frac{V_{0}}{{\overset{.}{\psi}}_{L} - {\overset{.}{\psi}}_{b}}}} & (2.16)\end{matrix}$Note that Equations 2.10 and 2.11 are functions of estimated valuesobtained during the calibration process, namely accelerations and yawrates.

Navigation system 110 estimates the ECU yaw misalignment ψ_(m) followingthe calculation of the IMU offsets relative to the vehicle controlpoint. The yaw misalignment can be expressed as:

$\begin{matrix}{{\psi_{m} = \frac{\psi_{m,L} + \psi_{m,R}}{2}}{{where}\text{:}}} & (2.17) \\{\psi_{m,L} = {{\hat{\psi}}_{L} + \psi_{a,L}}} & (2.18) \\{\psi_{m,R} = {{\hat{\psi}}_{L} + \psi_{a,R}}} & \begin{matrix}(2.19) \\(2.20)\end{matrix} \\{{\hat{\psi}}_{L} = {\tan^{- 1}( \frac{a_{\hat{x},L}}{a_{\hat{y},L}} )}} & (2.21) \\{{\hat{\psi}}_{R} = {\tan^{- 1}( \frac{a_{\hat{x},R}}{a_{\hat{y},R}} )}} & (2.22) \\{\psi_{a,L} - {\tan^{- 1}( \frac{l_{x}}{\frac{V_{0}}{\psi_{L}} + l_{y}} )}} & (2.23) \\{\psi_{a,R} - {\tan^{- 1}( \frac{l_{x}}{\frac{V_{0}}{\psi_{R}} - l_{y}} )}} & (2.24)\end{matrix}$

In a similar manner to the calculation of the pitch and rollmisalignment angles calculated in Equations 2.3 and 2.6, the calculationof yaw misalignment in Equation 2.17 is an averaging process between theleft and right hand turn maneuvers. This is to eliminate any effects ofan off-center ECU installation.

FIG. 7 illustrates the process for estimating the offset of GPS antenna12 during steps 4-6 discussed above in FIG. 3B. The GPS antenna offsetcalculation is similar to the ECU offset calculation but may notcalculate antenna pitch and roll. Again a GPS antenna offset fromvehicle control point 115 may produce different velocity readings whenthe vehicle turns to the left and right. Thus, navigation system 110electronically corrects/calibrates GPS readings to the control pointaxes of vehicle 100.

Navigation system 110 during step 4 determines the calibration speed V₀,which is maintained throughout the calibration process. Navigationsystem 110 during step 5 measures the GPS velocity V_(GPS,L) and yawrate {dot over (ψ)}_(L) during the left-hand turn. Similarly, navigationsystem 100 during step 6 measures the GPS velocity V_(GPS,R) and yawrate {dot over (ψ)}_(R) for the right-hand turn. The values for V₀,V_(GPS,L), V_(GPS,R), {dot over (ψ)}_(L), and {dot over (ψ)}_(R) aremeasured and stored within ECU 120 or navigation system 110 as they arecollected during steps 1-6.

Navigation system 110 uses the measured values to determine thelongitudinal antenna offset l_(x) and lateral antenna offset l_(y) asfollows:

$\begin{matrix}{l_{y} = \frac{n_{R} - n_{L} - ( \frac{m_{R} - m_{L}}{n_{R} + n_{L}} )}{2}} & (2.25) \\{{l_{x} = \sqrt{m_{R} - ( {n_{R} - l_{y}} )^{2}}}{{where}\text{:}}} & (2.26) \\{m_{R} = ( \frac{V_{{GPS},R}}{{\overset{.}{\psi}}_{R} - {\overset{.}{\psi}}_{b}} )^{2}} & (2.27) \\{m_{L} = ( \frac{V_{{GPS},L}}{{\overset{.}{\psi}}_{L} - {\overset{.}{\psi}}_{b}} )^{2}} & \begin{matrix}(2.28) \\(2.29)\end{matrix} \\{{❘n_{R}} = {\frac{V_{0}}{{\overset{.}{\psi}}_{R} - {\overset{.}{\psi}}_{b}}}} & (2.30) \\{n_{L} = {\frac{V_{0}}{{\overset{.}{\psi}}_{L} - {\overset{.}{\psi}}_{b}}}} & (2.31)\end{matrix}$Note that the antenna offset estimation may be more effective when GPSantenna 12 is installed ahead of control point 115 on vehicle 100, i.e.l_(x)>0.Minimum Radii

Navigation system 110 may calculate the left and right minimum radii forvehicle 100 using the GPS speed and yaw rates measured during each turndirection. The left and right minimum radii can be expressed as:

$\begin{matrix}{R_{L,\min} = {\frac{V_{{GPS},L}}{{\overset{.}{\psi}}_{L} - {\overset{.}{\psi}}_{b}} - l_{y}}} & (2.32) \\{R_{R,\min} = {\frac{V_{{GPS},R}}{{\overset{.}{\psi}}_{R} - {\overset{.}{\psi}}_{b}} + l_{y}}} & (2.33)\end{matrix}$Installation Attitude Biases

In adhering to the current definition of roll and pitch bias, the biasangles are represented relative to the nearest orthogonal installation.This rotation can expressed as follows:C _(orth) ^(ECU) =C _(b) ^(ECU) C _(orth) ^(b)  (2.34)

Where C_(orth) ^(EC|U) is the transformation from the nearest orthogonalalignment to the ECU frame, C_(|orth) ^(ECU) is the transformation fromthe body frame to the ECU frame (known) and C_(orth) ^(b) is thetransformation from the nearest orthogonal installation to the bodyframe (known). An orthogonal alignment is one that has 90° rotationsbetween axes.

Extraction of the angles from C_(orth) ^(EC|U) yields the roll ϕ_(b),pitch θ_(b) and yaw bias angles ψ_(b) relative to the nearest orthogonalinstallation in the ECU frame. To represent the bias angles in the bodyframe, the following rotation is applied:

$\begin{matrix}{\begin{bmatrix}\phi_{b} \\\theta_{b} \\\psi_{b}\end{bmatrix}_{b} = {C_{orth}^{b}\begin{bmatrix}\phi_{b} \\\theta_{b} \\\psi_{b}\end{bmatrix}}_{ECU}} & (2.35)\end{matrix}$

FIG. 8 shows an example process for automatic sensor calibration. Inoperation 200A, the navigation system reads sensor data while thevehicle is in a stationary position and oriented in a first direction.In operation 200B, the navigation system reads the sensor data while thevehicle is in a stationary position and oriented in the oppositedirection.

In operation 200C, the navigation system reads sensor data while thevehicle is traveling in a straight line at a constant speed. Inoperation 200D, the navigation system reads vehicle sensor data whilethe vehicle is turning locked to the left and in operation 200E, thenavigation system reads vehicle sensor data while the vehicle is turninglocked to the right.

In operation 200F, the navigation system calculates the roll, pitch, yawand misalignments of the ECU based on the measured vehicle sensor data.For example, the navigation system calculates the roll and pitchmisalignments based on the average roll and pitch readings fromoperations 200A and 200B. The navigation system calculates yawmisalignment based on vehicle speed, acceleration and yaw ratemeasurements made during operations 200C, 200D, and 200E.

In operation 200G, the navigation system calculates offsets of the ECUand GPS antenna based on the vehicle speed, acceleration and yaw ratemeasurements made during operations 200C, 200D, and 200E. For example,the navigation system calculates the lateral and longitudinal distancesof the inertial sensors and GPS antenna from the vehicle control point.In operation 200H, the navigation system calibrates the sensors byadjusting sensor readings to the vehicle frame axes or local axes basedon the derived misalignments and offsets.

Computer, Software, and Sensor Systems

A Global navigation satellite system (GNSS) is broadly defined toinclude GPS (U.S.) Galileo (European Union, proposed) GLONASS (Russia),Beidou (China) Compass (China, proposed) IRNSS (India, proposed), QZSS(Japan, proposed) and other current and future positioning technologyusing signal from satellites, with or with augmentation from terrestrialsources.

IMUs may include gyroscopic (gyro) sensors, accelerometers and similartechnologies for providing outputs corresponding to the inertial ofmoving components in all axes, i.e., through six degrees of freedom(positive and negative directions along transverse X, longitudinal Y andvertical Z axes). Yaw, pitch and roll refer to moving component rotationabout the Z, X, and Y axes respectively. Said terminology will includethe words specifically mentioned, derivative thereof and words ofsimilar meaning.

FIG. 9 generally shows guidance system 110 used in conjunction with anelectrical direct-drive steering assistance mechanism 3. Withoutlimitation on the generality of useful applications of guidance system110, a GNSS receiver 4, and a guidance processor 6 are connected to aGNSS antenna 12 and installed into vehicle 100, such as an agriculturalvehicle or tractor. An auto-steering system 166 is electricallyconnected to guidance processor 6, and is mechanically interfaced withvehicle 100 via steering assistance mechanism 3.

FIG. 10 shows additional detail of guidance system 110. The GNSSreceiver 4 is further comprised of an RF convertor (i.e., downconvertor)16, a tracking device 18, and a rover RTK receiver element 20. Thereceiver electrically communicates with, and provides GNSS positioningdata to, guidance processor 6. Guidance processor 6 includes a graphicaluser interface (GUI) 26, a microprocessor 24, and a media element 22,such as a memory storage drive. Guidance processor 6 electricallycommunicates with, and provides control data to auto-steering system166. Auto-steering system 166 includes a wheel movement detection switch28 and an encoder 30 for interpreting guidance and steering commandsfrom CPU 6.

Auto-steering system 166 may interface mechanically with the vehicle'ssteering column 34, which is mechanically attached to steering wheel 32.A control line 42 may transmit guidance data from the CPU 6 to theauto-steering system 166. An electrical subsystem 44, which powers theelectrical needs of vehicle 100, may interface directly withauto-steering system 166 through a power cable 46. The auto-steeringsubsystem 166 can be mounted to steering column 34 near the floor of thevehicle, and in proximity to the vehicle's control pedals 36.Alternatively, auto-steering system 166 can be mounted at otherlocations along steering column 34.

The auto-steering system 166 physically drives and steers vehicle 100 or110 by actively turning the steering wheel 32 via steering column 34. Amotor 45 powered by vehicle electrical subsystem 44 may power a wormdrive which powers a worm gear 48 affixed to auto-steering system 166.These components are preferably enclosed in an enclosure. In otherembodiments, auto-steering system 166 is integrated directly into thevehicle drive control system independently of steering column 34.

Some of the operations described above may be implemented in softwareand other operations may be implemented in hardware. One or more of theoperations, processes, or methods described herein may be performed byan apparatus, device, or system similar to those as described herein andwith reference to the illustrated figures.

“Computer-readable storage medium” (or alternatively, “machine-readablestorage medium”) used in guidance system 120 may include any type ofmemory, as well as new technologies that may arise in the future, aslong as they may be capable of storing digital information in the natureof a computer program or other data, at least temporarily, in such amanner that the stored information may be “read” by an appropriateprocessing device. The term “computer-readable” may not be limited tothe historical usage of “computer” to imply a complete mainframe,mini-computer, desktop, wireless device, or even a laptop computer.Rather, “computer-readable” may comprise storage medium that may bereadable by a processor, processing device, or any computing system.Such media may be any available media that may be locally and/orremotely accessible by a computer or processor, and may include volatileand non-volatile media, and removable and non-removable media.

Examples of systems, apparatus, computer-readable storage media, andmethods are provided solely to add context and aid in the understandingof the disclosed implementations. It will thus be apparent to oneskilled in the art that the disclosed implementations may be practicedwithout some or all of the specific details provided. In otherinstances, certain process or methods also referred to herein as“blocks,” have not been described in detail in order to avoidunnecessarily obscuring the disclosed implementations. Otherimplementations and applications also are possible, and as such, thefollowing examples should not be taken as definitive or limiting eitherin scope or setting.

References have been made to accompanying drawings, which form a part ofthe description and in which are shown, by way of illustration, specificimplementations. Although these disclosed implementations are describedin sufficient detail to enable one skilled in the art to practice theimplementations, it is to be understood that these examples are notlimiting, such that other implementations may be used and changes may bemade to the disclosed implementations without departing from theirspirit and scope. For example, the blocks of the methods shown anddescribed are not necessarily performed in the order indicated in someother implementations. Additionally, in other implementations, thedisclosed methods may include more or fewer blocks than are described.As another example, some blocks described herein as separate blocks maybe combined in some other implementations. Conversely, what may bedescribed herein as a single block may be implemented in multiple blocksin some other implementations. Additionally, the conjunction “or” isintended herein in the inclusive sense where appropriate unlessotherwise indicated; that is, the phrase “A, B or C” is intended toinclude the possibilities of “A,” “B,” “C,” “A and B,” “B and C,” “A andC” and “A, B and C.”

Having described and illustrated the principles of a preferredembodiment, it should be apparent that the embodiments may be modifiedin arrangement and detail without departing from such principles. Claimis made to all modifications and variation coming within the spirit andscope of the following claims.

The invention claimed is:
 1. A system for calibrating sensor readings,comprising: a hardware processor to: identify a vehicle control pointfor a vehicle, wherein the vehicle control point is a measured center ofgravity of the vehicle; read first sensor data from sensors located onthe vehicle, the vehicle at a first stationary position and location;read second sensor data from the sensors at substantially the samelocation and at a second opposite vehicle position; estimate a firstpitch angle of the vehicle from the first sensor data; estimate a secondpitch angle of the vehicle from the second sensor data; calculate apitch misalignment of the sensors relative to the vehicle control pointby averaging the first and second estimated pitch angles; estimate afirst roll angle of the vehicle from the first sensor data; estimate asecond roll angle of the vehicle from the second sensor data; calculatea roll misalignment of the sensors relative to a vehicle control pointby averaging the first and second estimated roll angles; and calibratethe sensors based on the pitch misalignment and the roll misalignment.2. The system of claim 1, the hardware processor further to: read thirdsensor data while the vehicle travels in a straight line at a constantspeed; read fourth sensor data while the vehicle turns to the left; readfifth sensor data while the vehicle turns to the right; and calculateoffsets of the sensors from the lateral and longitudinal axes of thecontrol point based on a yaw bias rate, and the third, fourth, and fifthsensor data.
 3. The system of claim 2, the hardware processor further tocalculate a yaw misalignment of the sensors relative to the controlpoint based on the yaw bias rate and the third, fourth, and fifth sensordata.
 4. The system of claim 2, the hardware processor further to:identify left turn acceleration and yaw rate values from the fourthsensor data; identify right turn acceleration and yaw rate values fromthe fifth sensor data; and calculate the offsets of the sensors based onthe left turn and right turn acceleration and yaw rate values.
 5. Thesystem of claim 2, the hardware processor further to calculate theoffsets for an inertial measurement unit (IMU) on the vehicle accordingto: $\begin{matrix}{{l_{y} = \frac{n_{R} - n_{L} - ( \frac{m_{R} - m_{L}}{n_{R} + n_{L}} )}{2}};} \\{{l_{x} = \sqrt{m_{R} - ( {n_{R} - l_{y}} )^{2}}};}\end{matrix}$ wherein: l_(x) is a forward offset of the IMU from thecontrol point; l_(y) is a lateral offset of the IMU from the controlpoint;${m_{R} = ( \frac{V_{{IMU},R}}{\psi_{R} - \psi_{b}} )^{2}};$${m_{L} = ( \frac{V_{{IMU},L}}{\psi_{L} - \psi_{b}} )^{2}};$${n_{R} = {\frac{V_{0}}{\psi_{R} - \psi_{b}}}};$${n_{L} = {\frac{V_{0}}{\psi_{L} - \psi_{b}}}};$${V_{{IMU},L} = \frac{\sqrt{a_{\hat{x},L^{2}} + a_{\hat{y},L^{2}}}}{\psi_{L} - \psi_{b}}};$${V_{{IMU},R} = \frac{\sqrt{a_{\hat{x},R^{2}} + a_{\hat{y},R^{2}}}}{\psi_{R} - \psi_{b}}};$a_({circumflex over (x)}L), a_(ŷL) and a_({circumflex over (x)}R),a_({circumflex over (x)}R) are corrected accelerations measured by x andy axis accelerometers for a left turn of the vehicle and a right turn ofthe vehicle, respectively; {dot over (ψ)}L is a yaw rate for theleft-hand turn of the vehicle; {dot over (ψ)}R is a yaw rate theright-hand turn of the vehicle; {dot over (ψ)}b is a yaw rate bias; andV₀ is a calibration speed of the vehicle.
 6. The system of claim 5, thehardware processor further to calculate a yaw misalignment ψ_(m) of thesensors, wherein: $\begin{matrix}{{\psi_{m} = \frac{\psi_{m,L} + \psi_{m,R}}{2}};} \\{{\psi_{m,L} = {{\hat{\psi}}_{L} + \psi_{a,L}}};} \\{{\psi_{m,R} = {{\hat{\psi}}_{L} + \psi_{a,R}}};} \\{{{\hat{\psi}}_{L} = {\tan^{- 1}( \frac{a_{\hat{x},L}}{a_{\hat{y},L}} )}};} \\{{{\hat{\psi}}_{R} = {\tan^{- 1}( \frac{a_{\hat{x},R}}{a_{\hat{y},R}} )}};} \\{{\psi_{a,L} - {\tan^{- 1}( \frac{l_{x}}{\frac{V_{0}}{\psi_{L}} + l_{y}} )}};{and}} \\{\psi_{a,R} - {{\tan^{- 1}( \frac{l_{x}}{\frac{V_{0}}{\psi_{R}} - l_{y}} )}.}}\end{matrix}$
 7. The system of claim 2, the hardware processor furtherto calculate a global positioning system (GPS) antenna offset accordingto: $\begin{matrix}{{l_{y} = \frac{n_{R} - n_{L} - ( \frac{m_{R} - m_{L}}{n_{R} + n_{L}} )}{2}};} \\{{{l_{x} = \sqrt{m_{R} - ( {n_{R} - l_{y}} )^{2}}};}{{{where}{in}}\text{:}}} \\{{m_{R} = ( \frac{V_{{GPS},R}}{{\overset{.}{\psi}}_{R} - {\overset{.}{\psi}}_{b}} )^{2}};} \\{{m_{L} = ( \frac{V_{{GPS},L}}{{\overset{.}{\psi}}_{L} - {\overset{.}{\psi}}_{b}} )^{2}};} \\{{n_{R} = {\frac{V_{0}}{{\overset{.}{\psi}}_{R} - {\overset{.}{\psi}}_{b}}}};} \\{{n_{L} = {\frac{V_{0}}{{\overset{.}{\psi}}_{L} - {\overset{.}{\psi}}_{b}}}};}\end{matrix}$ l_(x) is a longitudinal GPS antenna offset from thevehicle control point; l_(y) is a lateral GPS antenna offset from thevehicle control point; V₀ is a calibration speed of the vehicle;V_(GPS,L) is a measured GPS velocity during a left hand vehicle turn;{dot over (ψ)}_(L) is a measured yaw rate during the left-hand vehicleturn; V_(GPS,R) is a measured GPS velocity during a right-hand vehicleturn; {dot over (ψ)}_(R) is a measured yaw rate during the right-handvehicle turn; and {dot over (ψ)}_(b) is a yaw rate bias.
 8. A computersystem for calibrating sensors in a vehicle, the computer systemcomprising: a processor; and memory coupled to the processor and storinga set of instructions that, when executed by the processor are operableto: measure a calibration speed V₀ of the vehicle while traveling at aconstant speed in a straight line; measure a yaw rate bias {dot over(ψ)}_(b) of the vehicle while stationary; measure a left yaw rate {dotover (ψ)}_(L) during a left-hand turn of the vehicle; measure a rightyaw rate {dot over (ψ)}_(R) during a right-hand turn of the vehicle;calculate a misalignment of the sensors relative to a lateral andlongitudinal vehicle axes based on the calibration speed V₀, left yawrate {dot over (ψ)}_(L), right yaw rate {dot over (ψ)}_(R) and yaw ratebias {dot over (ψ)}_(b) of the vehicle; and calibrate the sensors basedon the misalignment of the sensors relative to the lateral andlongitudinal vehicle axes.
 9. The computer system of claim 8, whereinthe misalignment of the sensors is a yaw misalignment.
 10. The computersystem of claim 8, the set of instructions when executed by theprocessor are further operable to calculate an offset of the sensorsfrom the lateral and longitudinal vehicle axes based on the calibrationspeed V₀, left yaw rate {dot over (ψ)}_(L) right yaw rate {dot over(ψ)}_(R) and yaw rate bias {dot over (ψ)}_(b) of the vehicle.
 11. Thecomputer system of claim 8, wherein the sensors are located in aninertial measurement unit (IMU) and the set of instructions whenexecuted by the processor are operable to calculate a misalignment andoffset of the IMU relative to the lateral and longitudinal vehicle axes.12. The computer system of claim 8, wherein the sensors include a globalpositioning system (GPS) antenna and the set of instructions whenexecuted by the processor are operable to calculate an offset of the GPSantenna relative to the lateral and longitudinal vehicle axes.
 13. Thecomputer system of claim 8, wherein the instructions when executed bythe processor are further operable to: measure a first pitch angle θ₁ ofthe vehicle at a location when pointed in a first direction; measure asecond pitch angle θ₂ of the vehicle at substantially the same locationwhen pointed in a second opposite direction; and calculate a pitchmisalignment of the sensors based on the first pitch angle θ₁ and thesecond pitch angle θ₂.
 14. The computer system of claim 8, wherein theinstructions when executed by the processor are further operable to:measure a first roll angle ϕ₁ of the vehicle at a location when pointedin a first direction; measure a second roll angle ϕ₂ of the vehicle atsubstantially the same location when pointed in a second oppositedirection; and calculate a roll misalignment of the sensors based on thefirst roll angle ϕ₁ and the second roll angle ϕ₂.
 15. The computersystem of claim 8, wherein the instructions when executed by theprocessor are further operable to: measure left turn acceleration valuesfor the vehicle; measure right turn acceleration values for the vehicle;and calculate the misalignment of the sensors based on the left turnacceleration values and the right turn acceleration values.
 16. A methodfor calibrating sensor readings, comprising: reading first sensor datafrom sensors located on a vehicle at a location and first stationaryvehicle position; reading second sensor data from the sensors atsubstantially the same location and a second opposite stationary vehicleposition; reading third sensor data while the vehicle travels in astraight line at a constant speed; reading fourth sensor data while thevehicle turns to the left; reading fifth sensor data while the vehicleturns to the right; calculating misalignments and offsets of the sensorsbased on the sensor data; and calibrate the sensors based on themisalignments and offsets of the sensors.
 17. The method of claim 16,further comprising: reading a first pitch angle and first roll angle ofthe vehicle from the first sensor data; reading a second pitch angle andfirst roll angle of the vehicle from the second sensor data; calculatinga pitch misalignment for the sensors based on the first and second pitchangle; and calculating a roll misalignment for the sensors based on thefirst and second roll angle.
 18. The method of claim 16, furthercomprising: reading a vehicle speed from the third sensor data; readingleft yaw rate and left acceleration from the fourth sensor data; readingright yaw rate and right acceleration from the fifth sensor data; andcalculating a sensor yaw misalignment and sensor offsets from a vehiclecontrol point based on the vehicle speed, left yaw rate, leftacceleration, right yaw rate, and right acceleration.